export function getData(rootDocment, url, datas, response, begin) {
    let { data } = response;
    let userInfo = uni.getStorageSync("userInfo") || {};
    let obj = {
        api: rootDocment + url || "", // api请求URL
        begin: new Date(begin).toLocaleString() || "",
        code: data.errcode + '' || "", // 返回状态码
        msg: data.errmsg || "", // 返回消息
        performanceObj: JSON.stringify(datas), // 请求数据
        success: data.errcode == 0 ? "1" : "0", // 是否成功 1成功
        time: (new Date().getTime() - new Date(begin).getTime()) + "" || "", // 请求时间
        traceid: datas.sign || "",
        uid: userInfo.id + "" || "", // 用户ID
        username: userInfo.username || "", // 用户名
        date: new Date().toLocaleDateString() || "", // 当前时间
        type:"下单端", // 提示类型
    }
    // #ifdef MP-WEIXIN || APP-PLUS
    const pages = getCurrentPages(); // 获取当前页面栈
    // 防止pages是空的影响页面展示
    if (pages.length > 0) {
        const currentPage = pages[pages.length - 1]; // 获取当前页面对象
        obj.path = currentPage.route; // 当前页面路径
    }
    uni.getSystemInfo({
        success: function (res) {
            obj.ua = res.ua || '小程序/App' // 设备名称
            obj.vp = res.windowWidth + 'X' + res.windowHeight; // 视口大小
        }
    });
    // #endif
    // #ifdef H5
    obj.ua = navigator.userAgent // 设备名称
    obj.vp = window.innerWidth + 'X' + window.innerHeight; // 视口大小
    obj.path = window.location.hash || "";
    if (navigator.connection) {
        obj.ct = navigator.connection.effectiveType || ''; // 网络类型
    }
    // #endif
    pushData(obj); // 在满足条件时调用pushData函数
}

export function errData(rootDocment, url, datas, error, begin) {
    console.log(error);
    let { data } = error;
    let userInfo = uni.getStorageSync("userInfo") || {};
    let obj = {
        api: rootDocment + url || "", // api请求URL
        begin: new Date(begin).toLocaleString() || "",
        performanceObj: JSON.stringify(datas), // 请求数据
        time: (new Date().getTime() - new Date(begin).getTime()) + "" || "", // 请求时间
        traceid: datas.sign || "",
        uid: userInfo.id + "" || "", // 用户ID
        username: userInfo.username || "", // 用户名
        date: new Date().toLocaleDateString() || "", // 当前时间
        errmsg: '下单端系统错误', // 错误筛选信息
    }
    if(data){
        obj.preview = JSON.stringify(data)
    }
    // #ifdef MP-WEIXIN || APP-PLUS
    const pages = getCurrentPages(); // 获取当前页面栈
    // 防止pages是空的影响页面展示
    if (pages.length > 0) {
        const currentPage = pages[pages.length - 1]; // 获取当前页面对象
        obj.path = currentPage.route; // 当前页面路径
    }
    uni.getSystemInfo({
        success: function (res) {
            obj.ua = res.ua || '小程序/App' // 设备名称
            obj.vp = res.windowWidth + 'X' + res.windowHeight; // 视口大小
        }
    });
    // #endif
    // #ifdef H5
    obj.ua = navigator.userAgent // 设备名称
    obj.vp = window.innerWidth + 'X' + window.innerHeight; // 视口大小
    obj.path = window.location.hash || "";
    if (navigator.connection) {
        obj.ct = navigator.connection.effectiveType || ''; // 网络类型
    }
    // #endif
    pushData(obj); // 在满足条件时调用pushData函数
}

// 2秒中没有请求才发送请求
function handleData(arr, callback) {
    let timer = null;
    function pushData(data) {
        if (timer) {
            clearTimeout(timer);
        }
        arr.push(data);
        timer = setTimeout(() => {
            callback(arr);
            arr = [];
        }, 2000);
    }

    return pushData;
}

// 上传地址
let url = "https://caidongjia.cn-beijing.log.aliyuncs.com/logstores/caidongjia/track?APIVersion=0.6.0"

function postTracking(data) {
    uni.request({
        url,
        method: "POST",
        data: { __logs__: data },
        success: res => {
        }
    })
}

// 创建一个arr数组来保存数据
let arr = [];
// 定义一个全局的pushData函数，用于将数据推入arr数组中
const pushData = handleData(arr, postTracking);